﻿Imports System.Data
Imports System.Data.SqlClient
Public Class CombustivelDAL
    Sub New()

    End Sub

    Function inserir(ByVal tipo As String) As Integer
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Dim codigo As Integer
        Try

            'Comando para inserção de dados no banco
            cmd.CommandText = "INSERT INTO combustivel (com_tipo) values (@tipo)"

            'Parâmetros de entrada
            cmd.Parameters.Add(New SqlParameter("@tipo", SqlDbType.VarChar, 50)).Value = tipo

            'Execução da inserção com retorno do valor da chave primária
            codigo = objD.executacomandoAI(cmd, "combustivel")

        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
        Return codigo
    End Function

    Sub alterar(ByVal codigo As Integer, ByVal tipo As String)
        Dim cmd As New SqlCommand
        Dim objD As New Dados

        Try

            'Comando para atualização de dados no banco
            cmd.CommandText = "UPDATE combustivel SET com_tipo = @tipo, WHERE com_codigo = @codigo"

            'Parâmetros de entrada
            cmd.Parameters.Add(New SqlParameter("@codigo", SqlDbType.Int)).Value = codigo
            cmd.Parameters.Add(New SqlParameter("@tipo", SqlDbType.VarChar, 50)).Value = tipo
            'Execução da alteração
            objD.executacomando(cmd)
        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
    End Sub

    Sub excluir(ByVal codigo As Integer)
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Try
            'Comando para exclusão de um registro no banco
            cmd.CommandText = "DELETE FROM combustivel WHERE com_codigo = @codigo"

            'Parâmetro de comparação
            cmd.Parameters.Add(New SqlParameter("@codigo", SqlDbType.Int)).Value = codigo

            'Execução do comando
            objD.executacomando(cmd)
        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
    End Sub

    Function localizar(ByVal descricao As String) As DataTable
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Dim tab As DataTable = Nothing
        Try
            If (descricao = "ultimo") Then
                cmd.CommandText = "SELECT com_codigo = max(com_codigo) FROM combustivel "
            ElseIf (descricao = "primeiro") Then
                cmd.CommandText = "SELECT com_codigo = min(com_codigo) FROM combustivel "

            Else
                'Comando para localizar vários registros no banco
                cmd.CommandText = "SELECT * FROM combustivel WHERE com_tipo like @descricao"

                'Parâmetro de entrada
                cmd.Parameters.Add(New SqlParameter("@descricao", SqlDbType.VarChar)).Value = descricao + "%"
            End If
            'Execução do comando
            tab = objD.executaConsulta(cmd)

        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
        Return tab
        tab = Nothing
    End Function

    Function localizarProxAnterior(ByVal descricao As String, ByVal codigo As Integer) As DataTable
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Dim tab As DataTable = Nothing
        Try
            If (descricao = "proximo") Then
                cmd.CommandText = "SELECT com_codigo FROM combustivel WHERE com_codigo = (SELECT MIN(com_codigo) FROM combustivel WHERE com_codigo > @codigo)"

            ElseIf (descricao = "anterior") Then
                cmd.CommandText = "SELECT com_codigo FROM combustivel  WHERE com_codigo = (SELECT MAX(com_codigo) FROM combustivel WHERE com_codigo < @codigo)"


            End If
            'Parâmetro de entrada
            cmd.Parameters.Add(New SqlParameter("@codigo", SqlDbType.Int)).Value = codigo
            'Execução do comando
            tab = objD.executaConsulta(cmd)

        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
        Return tab
        tab = Nothing
    End Function



    Function localizar(ByVal codigo As Integer) As DataTable
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Dim tab As DataTable = Nothing
        Try
            'Comando para localizar vários registros no banco
            cmd.CommandText = "SELECT * FROM combustivel WHERE com_codigo = @codigo"

            'Parâmetro de entrada 
            cmd.Parameters.Add(New SqlParameter("@codigo", SqlDbType.Int)).Value = codigo

            'Execução do comando
            tab = objD.executaConsulta(cmd)

        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
        Return tab
        tab = Nothing
    End Function

    Sub insereCombustivel(ByVal codveiculo As Integer, ByVal codcombustivel As Integer)
        Dim cmd As New SqlCommand
        Dim objD As New Dados

        Try

            'Comando para atualização de dados no banco
            cmd.CommandText = "INSERT INTO COMBUSTIVEISVEICULO (VEI_CODIGO, COM_CODIGO) VALUES (@codveiculo, @codcombustivel)"

            'Parâmetros de entrada
            cmd.Parameters.Add(New SqlParameter("@codveiculo", SqlDbType.Int)).Value = codveiculo
            cmd.Parameters.Add(New SqlParameter("@codcombustivel", SqlDbType.Int)).Value = codcombustivel
            'Execução da alteração
            objD.executacomando(cmd)
        Catch ex As Exception
            Throw ex
        End Try
        cmd = Nothing
        objD = Nothing
    End Sub

    Function localizacombustivel(ByVal codveiculo As Integer) As DataTable
        Dim cmd As New SqlCommand
        Dim objD As New Dados
        Dim tab As DataTable = Nothing

        Try
            cmd.CommandText = "SELECT * FROM CombustiveisVeiculo where cod_veiculo=@codveiculo"

            'Parâmetros de entrada
            cmd.Parameters.Add(New SqlParameter("@codveiculo", SqlDbType.Int)).Value = codveiculo
            'Execução da alteração
            tab = objD.executaConsulta(cmd)
        Catch ex As Exception

        End Try
        cmd = Nothing
        objD = Nothing
        Return tab
        tab = Nothing
    End Function
End Class
